Estimating software testing complexity

نویسندگان

  • Javier Ferrer
  • Francisco Chicano
  • Enrique Alba
چکیده

Context: Complexity measures provide us some information about software artifacts. A measure of the difficulty of testing a piece of code could be very useful to take control about the test phase. Objective: The aim in this paper is the definition of a new measure of the difficulty for a computer to generate test cases, we call it Branch Coverage Expectation (BCE). We also analyze the most common complexity measures and the most important features of a program. With this analysis we are trying to discover whether there exists a relationship between them and the code coverage of an automatically generated test suite. Method: The definition of this measure is based on a Markov model of the program. This model is used not only to compute the BCE, but also to provide an estimation of the number of test cases needed to reach a given coverage level in the program. In order to check our proposal, we perform a theoretical validation and we carry out an empirical validation study using 2600 test programs. Results: The results show that the previously existing measures are not so useful to estimate the difficulty of testing a program, because they are not highly correlated with the code coverage. Our proposed measure is much more correlated with the code coverage than the existing complexity measures. Conclusion: The high correlation of our measure with the code coverage suggests that the BCE measure is a very promising way of measuring the difficulty to automatically test a program. Our proposed measure is useful for predicting the behaviour of an automatic test case generator.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Software Change Complexity: A New Dimension for Analyzing Requested Change

It has been well accepted by the software professionals as well as researchers that software systems have to evolve themselves to survive successfully. Software evolution is a crucial activity for software organizations. Software complexity has existed as an important issue ever since the software programs came into existence. Thus, it becomes necessary to visualize and analyze the complexity o...

متن کامل

Estimation of Software Reliability by Sequential Testing with Simulated Annealing of Mean Field Approximation

Various problems of combinatorial optimization and permutation can be solved with neural network optimization. The problem of estimating the software reliability can be solved with the optimization of failed components to its minimum value. Various solutions of the problem of estimating the software reliability have been given. These solutions are exact and heuristic, but all the exact approach...

متن کامل

Measuring Testing Complexity

Since the birth of Software Industry there is a special interest in measuring the effort in terms of time and cost that a task requires. Nowadays, since applications are essential for Industry, the software developers need to measure different kind of aspects: quality, cost, reliability, etc. Complexity is another important aspect in which software engineers are interested. But, what does we me...

متن کامل

Code Churn: A Measure for Estimating the Impact of Code Change

This study presents a methodology that will produce a viable fault surrogate. The focus of the effort is on the precise measurement of software development process and product outcomes. Tools and processes for the static measurement of the source code have been installed and made operational in a large embedded software system. Source code measurements have been gathered unobtrusively for each ...

متن کامل

Computer Science Technical Report Estimating Defect Density Using Test Coverage

Defect density is one of the most important factors that allow one to decide if a piece of software is ready to be released. In theory, one can find all the defects and count them, however it is impossible to find all the defects within any reasonable amount of time. Estimating defect density can become difficult for high reliability software, since the remaining defects can be extremely hard t...

متن کامل

Estimating the Number of Residual Defects

Residual defects is one of the most important factors that allow one to decide if a piece of software is ready to be released. In theory, one can find all the defects and count them, however it is impossible to find all the defects within a reasonable amount of time. Estimating defect density can become difficult for high reliability software, since remaining defects can be extremely hard to te...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Information & Software Technology

دوره 55  شماره 

صفحات  -

تاریخ انتشار 2013